//
//  APPHttpManager.h
//  Socrates
//
//  Created by Bob on 15/5/7.
//  Copyright (c) 2015年 shy. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ASIHTTPRequestDelegate.h"
#import "StringUtil.h"
#import "NSStringAdditions.h"

#define SINA_V2_DOMAIN              @"https://api.weibo.com/2"
#define SINA_API_AUTHORIZE          @"https://api.weibo.com/oauth2/authorize"
#define SINA_API_ACCESS_TOKEN       @"https://api.weibo.com/oauth2/access_token"

//我刚提交给新浪审核，通过审核估计得5个工作日。
//所以需要把这里的app key 和 app secret 换成你在新浪上注册的app key 和 app secret
//然后给你注册的应用添加几个测试账号，用测试账号登陆。
#define SINA_APP_KEY                @"3386847930"
//@"3601604349"
#define SINA_APP_SECRET             @"0e7406b43c472dbd9c495476a36a7ae5"
//@"7894dfdd1fc2ce7cc6e9e9ca620082fb"

#define USER_INFO_KEY_TYPE          @"requestType"

#define USER_STORE_ACCESS_TOKEN     @"SinaAccessToken"
#define USER_STORE_EXPIRATION_DATE  @"SinaExpirationDate"
#define USER_STORE_USER_ID          @"SinaUserID"
#define USER_STORE_USER_NAME        @"SinaUserName"
#define USER_OBJECT                 @"USER_OBJECT"
#define NeedToReLogin               @"NeedToReLogin"

#define MMSinaRequestFailed         @"MMSinaRequestFailed"

typedef enum {
    AppPostRegist = 0,              //注册
    AppPostCheckNickName,           //检查昵称是否存在
    AppPostSearchSchool,            //查找学校名称
    AppPostModifyPassword,          //修改密码
    AppPostModifyPersonalInfo,      //修改个人信息
    AppPostLogin,                   //登陆
    AppPostGetActivityList,         //获取首页活动列表
    AppPostGetActivityInfo,         //获取活动具体信息
    AppPostCollectActivity,         //藏活动
    AppNoPostCollectActivity,       //取消收藏活动
    AppFollowByUserID,              //关注一个用户 by User ID
    AppFollowByUserName,            //关注一个用户 by User Name
    AppUnfollowByUserID,            //取消关注一个用户 by User ID
    AppUnfollowByUserName,          //取消关注一个用户 by User Name
    AppPostReportActivity,          //12、	举报活动
    AppPostSubmitActivityComment,   //13、	提交活动评论
    AppGetGetActivityComment,       //14、	获取评论列表
    AppPostSignupActivity,          //15、	报名活动
    AppPostPraiseActivity,          //17、	赞活动
    AppPostNoPraiseActivity,        //18、	取消赞活动
    AppPostConcernUser,             //20、	关注他人（OK）
    AppPostNoConcernUser,           //21、	取消关注他人
    AppPostReportUser,              //22、	举报用户
    AppPostShieldUser,              //23、	屏蔽用户（OK）
    AppPostNoShieldUser,            //24、	取消屏蔽用户
    AppGetGetFriendList,            //26、	获取好友列表
    AppPostPrivateMsgList,          //27、	获取私信列表
    AppPost,                        //28、	获取私信列表
    AppGetGetActivityUserList,      //29、	获取活动参与人员列表
    AppPostCreateActivity,          //31、	发布活动
    AppGetGetRecommendActivityList, //32、	获取推荐活动列表
    AppGetGetPersonalINfo,          //34、	获取个人主页信息
    AppGetGetMyJoinedActivity,      //35、	获取我的参与活动列表
    AppGetMyCreateActivity,         //36、	获取我的举办活动列表
    AppPostReportSuggestion,        //40、	提交反馈意见

}RequestType;

@class ASINetworkQueue;
@class Status;
@class User;


//Delegate
@protocol WeiBoHttpDelegate <NSObject>

@optional
//获取最新的公共微博
-(void)didGetPublicTimelineWithStatues:(NSArray*)statusArr;

//获取登陆用户的UID
-(void)didGetUserID:(NSString*)userID;

//获取任意一个用户的信息
-(void)didGetUserInfo:(User*)user;

//根据微博消息ID返回某条微博消息的评论列表
-(void)didGetCommentList:(NSDictionary *)commentInfo;

//获取用户双向关注的用户ID列表，即互粉UID列表
-(void)didGetBilateralIdList:(NSArray*)arr;

//获取用户的双向关注user列表，即互粉列表
-(void)didGetBilateralUserList:(NSArray*)userArr;

//获取用户的关注列表
-(void)didGetFollowingUsersList:(NSArray*)userArr;

//获取用户粉丝列表
-(void)didGetFollowedUsersList:(NSArray*)userArr;

//获取某话题下的微博消息
-(void)didGetTrendStatues:(NSArray*)statusArr;

//关注一个用户 by User ID
-(void)didFollowByUserIDWithResult:(NSDictionary*)resultDic;

//取消关注一个用户 by User ID
-(void)didUnfollowByUserIDWithResult:(NSDictionary*)resultDic;

//关注某话题
-(void)didGetTrendIDAfterFollowed:(int64_t)topicID;

//取消对某话题的关注
-(void)didGetTrendResultAfterUnfollowed:(BOOL)isTrue;

//发布微博
-(void)didGetPostResult:(Status*)sts;

//获取当前登录用户及其所关注用户的最新微博
-(void)didGetHomeLine:(NSArray*)statusArr;

//获取某个用户最新发表的微博列表
-(void)didGetUserStatus:(NSArray*)statusArr;

//转发一条微博
-(void)didRepost:(Status*)sts;

//按天返回热门微博转发榜的微博列表
-(void)didGetHotRepostDaily:(NSArray*)statusArr;

//按天返回热门微博评论榜的微博列表
-(void)didGetHotCommentDaily:(NSArray*)statusArr;

//获取某个用户的各种消息未读数
-(void)didGetUnreadCount:(NSDictionary*)dic;

@end

@interface APPHttpManager : NSObject

@end
